package com.yt.user.models.service;

import com.yt.user.models.dto.LoginDTO;
import com.yt.user.models.dto.RegisterDTO;
import com.yt.user.models.dto.ResetPasswordDTO;
import com.yt.user.models.entity.User;
import com.yt.user.models.vo.LoginVO;

public interface UserService {
    /**
     * 用户注册
     * @param registerDTO 注册信息
     * @return 注册结果
     */
    boolean register(RegisterDTO registerDTO);

    /**
     * 用户登录
     * @param loginDTO 登录信息
     * @return 登录结果，包含用户信息和token
     */
    LoginVO login(LoginDTO loginDTO);

    /**
     * 根据ID获取用户信息
     * @param userId 用户ID
     * @return 用户信息
     */
    User getUserById(Long userId);

    /**
     * 根据账号获取用户信息
     * @param account 账号
     * @return 用户信息
     */
    User getUserByAccount(String account);

    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 是否更新成功
     */
    boolean updateUserInfo(User user);

    /**
     * 重置密码
     * @param resetPasswordDTO 重置密码信息
     * @return 是否重置成功
     */
    boolean resetPassword(ResetPasswordDTO resetPasswordDTO);

    /**
     * 删除用户（逻辑删除）
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteUser(Long userId);
}